In recent years, the number of applications for, for example, video on demand-type services, which include video conferencing via the Internet, and streaming of digital video broadcasts and video content, is increasing, and these applications are reliant on transmission of video information. When video data is transmitted or recorded, a significant amount of data is transmitted via a conventional transmission path having limited bandwidth, or is stored in a conventional recording medium having limited data capacity. In order for the video information to be transmitted through a conventional transmission channel or stored in a conventional recording medium, it is essential to compress or reduce the amount of digital data.
In view of this, video coding standards are being developed for the compression of video data. Such video coding standards are, for example, the International Telecommunication Union-Telecommunication Standardization Sector (ITU-T) Standard denoted by H.26x and the ISO/IEC Standard denoted by MPEG-x. The most recent and most advanced video coding standards at present are the standards denoted by H.264/AVC and MPEG-4 AVC (see NPL 1 and NPL 2).
Roughly divided, the H.264/AVC Standard consists of processes such as prediction, transformation, quantization, and entropy coding. Among these processes, entropy coding reduces redundancy in information used in prediction, quantized information, and so on. Variable-length coding, adaptive coding, fixed-length coding, and so on, are known as types of entropy coding. Variable-length coding includes Huffman coding, run length coding, arithmetic coding, and so on. Among these, arithmetic coding is a scheme in which the output code is determined while calculating the occurrence probability of symbols, and is known to have high coding efficiency compared to Huffman coding, and the like, which use a fixed coding table, because the codes are determined according to the features of image data.
The operation in conventional arithmetic coding shall be described using FIG. 21 and FIG. 22.
First, the flow of arithmetic coding is described below using FIG. 21.
When arithmetic coding is started for a certain type of signal, binarization is performed using a predetermined method that is in accordance with the type of the signal in step S11. Next, in step S12, a context control process that is in accordance with the type of the signal is performed. In the context control process, a symbol occurrence probability that is in accordance with the signal type is read from a memory in which plural symbol occurrence probabilities are stored, and the read symbol occurrence probability is outputted. In step S13, arithmetic coding is performed on the information to be processed, using the symbol occurrence probability received from step S12, and the result is outputted as an output signal.
In step S14, the value of the corresponding symbol occurrence probability is updated based on the binarized information calculated in step S11 and stored as the symbol occurrence probability. When the arithmetic coding of the information to be processed is completed, arithmetic coding is performed again for the next information to be processed.
FIG. 22 is a block diagram showing a configuration of an arithmetic coding unit which shows the process for the arithmetic coding in the conventional H.264/AVC. As shown in FIG. 22, an arithmetic coding unit 10 includes a binarization unit 11, a symbol occurrence probability storage unit 12, a context control unit 13, and a binary arithmetic encoder 14.
An input signal SI, which is a signal that becomes the coding target, and a signal type information indicating the type of the input signal SI are inputted to the arithmetic coding unit 10. The binarization unit 11 converts the input signal SE into the binary information (symbol) “0” or “1” based on the signal type information SE, and sends a binary signal BIN to the binary arithmetic encoder 14 and the context control unit 13.
The context control unit 13 obtains, from the symbol occurrence probability storage unit 12, the symbol occurrence probability PE corresponding to the signal type information SE. Furthermore, the context control unit 13 performs the update process for the symbol occurrence probability PE corresponding to the signal type information SE based on the binary signal BIN corresponding to the input signal SI and inputted from the binarization unit 11, and stores the updating result in the symbol occurrence probability storage unit 12.
The binary arithmetic encoder 14 performs, on the binary signal BIN, an arithmetic coding process based on the symbol occurrence probability PE.